<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.datacontract.org/2004/07/SolutionFramework.Entities" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/SolutionFramework.Entities" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:5998/Services/SolutionFramework-Service-CodeGenerationPipelineDomainService.svc?xsd=xsd0" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="TemplateFormat">
    <xs:sequence>
      <xs:element minOccurs="0" name="FormatID" type="ser:guid" />
      <xs:element minOccurs="0" name="LanguageName" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="ProgrammingLanguageID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="TemplateExtension" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="TemplateFormat" nillable="true" type="tns:TemplateFormat" />
  <xs:complexType name="ArchitectureFeature">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureFeatureID" type="ser:guid" />
      <xs:element minOccurs="0" name="CodeGenerationPipelineID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="IsOptional" nillable="true" type="xs:boolean" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArchitectureFeature" nillable="true" type="tns:ArchitectureFeature" />
  <xs:complexType name="ArchitectureLayer">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureModelID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="LayerID" type="ser:guid" />
      <xs:element minOccurs="0" name="LayerName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArchitectureLayer" nillable="true" type="tns:ArchitectureLayer" />
  <xs:complexType name="ArchitectureModel">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureModelID" type="ser:guid" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArchitectureModel" nillable="true" type="tns:ArchitectureModel" />
  <xs:complexType name="ArchitectureToPipeline">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureModelID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="ArchitectureToPipelineID" type="ser:guid" />
      <xs:element minOccurs="0" name="CodeGenerationPipelineID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="IsDefault" nillable="true" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArchitectureToPipeline" nillable="true" type="tns:ArchitectureToPipeline" />
  <xs:complexType name="CodeGenerationPipeline">
    <xs:sequence>
      <xs:element minOccurs="0" name="CodeGenerationPipelineID" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CodeGenerationPipeline" nillable="true" type="tns:CodeGenerationPipeline" />
  <xs:complexType name="CodeProjectProvider">
    <xs:sequence>
      <xs:element minOccurs="0" name="Assembly" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="CodeProjectProviderID" type="ser:guid" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CodeProjectProvider" nillable="true" type="tns:CodeProjectProvider" />
  <xs:complexType name="FeatureToArchitecture">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="Assembly" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FeatureID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="FeatureToArchitectureID" type="ser:guid" />
      <xs:element minOccurs="0" name="IsRequired" nillable="true" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FeatureToArchitecture" nillable="true" type="tns:FeatureToArchitecture" />
  <xs:complexType name="PipelineStep">
    <xs:sequence>
      <xs:element minOccurs="0" name="DefaultLayerStepOridinal" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="LayerID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="ParentStepID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineStepID" type="ser:guid" />
      <xs:element minOccurs="0" name="RequiredLayerStepOrdinal" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="StepAssembly" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineStep" nillable="true" type="tns:PipelineStep" />
  <xs:complexType name="PipelineStepFileCreationTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" name="DefaultOwnerFileTemplateID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="FileNameExpression" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FileTemplateID" type="ser:guid" />
      <xs:element minOccurs="0" name="Ordinal" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="PipelineStepID" nillable="true" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineStepFileCreationTemplate" nillable="true" type="tns:PipelineStepFileCreationTemplate" />
  <xs:complexType name="PipelineStepFileTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" name="FileCreationTemplateID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="FormatID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineStepFileTemplate1" type="ser:guid" />
      <xs:element minOccurs="0" name="TemplateAssembly" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="TemplateName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineStepFileTemplate" nillable="true" type="tns:PipelineStepFileTemplate" />
  <xs:complexType name="PipelineStepPrerequisite">
    <xs:sequence>
      <xs:element minOccurs="0" name="PipelineStep" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineStepPrerequisitesID" type="ser:guid" />
      <xs:element minOccurs="0" name="RequiresPipelineStep" nillable="true" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineStepPrerequisite" nillable="true" type="tns:PipelineStepPrerequisite" />
  <xs:complexType name="PipelineSupportedLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" name="CodeGenerationPipelineID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="LanguageID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineSupportedLanguageID" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineSupportedLanguage" nillable="true" type="tns:PipelineSupportedLanguage" />
  <xs:complexType name="PipelineSupportedProvider">
    <xs:sequence>
      <xs:element minOccurs="0" name="CodeProjectProviderID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="PipelineID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="SupportedProviderID" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PipelineSupportedProvider" nillable="true" type="tns:PipelineSupportedProvider" />
  <xs:complexType name="ProgrammingLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" name="LanguageName" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="ProgrammingLanguageID" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ProgrammingLanguage" nillable="true" type="tns:ProgrammingLanguage" />
  <xs:complexType name="ProjectStructure">
    <xs:sequence>
      <xs:element minOccurs="0" name="ArchitectureLayerID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="CanIncludeFiles" nillable="true" type="xs:boolean" />
      <xs:element minOccurs="0" name="CodeProjectProviderID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="IsFolder" nillable="true" type="xs:boolean" />
      <xs:element minOccurs="0" name="ParentStructureID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="ProjectStructureID" type="ser:guid" />
      <xs:element minOccurs="0" name="StructureLayerName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ProjectStructure" nillable="true" type="tns:ProjectStructure" />
  <xs:complexType name="ProviderSupportedLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" name="CodeProjectProviderID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="LanguageID" nillable="true" type="ser:guid" />
      <xs:element minOccurs="0" name="ProviderSupportedLanguageID" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ProviderSupportedLanguage" nillable="true" type="tns:ProviderSupportedLanguage" />
  <xs:complexType name="ArrayOfTemplateFormat">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="TemplateFormat" nillable="true" type="tns:TemplateFormat" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfTemplateFormat" nillable="true" type="tns:ArrayOfTemplateFormat" />
  <xs:complexType name="ArrayOfArchitectureFeature">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ArchitectureFeature" nillable="true" type="tns:ArchitectureFeature" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfArchitectureFeature" nillable="true" type="tns:ArrayOfArchitectureFeature" />
  <xs:complexType name="ArrayOfArchitectureLayer">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ArchitectureLayer" nillable="true" type="tns:ArchitectureLayer" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfArchitectureLayer" nillable="true" type="tns:ArrayOfArchitectureLayer" />
  <xs:complexType name="ArrayOfArchitectureModel">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ArchitectureModel" nillable="true" type="tns:ArchitectureModel" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfArchitectureModel" nillable="true" type="tns:ArrayOfArchitectureModel" />
  <xs:complexType name="ArrayOfArchitectureToPipeline">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ArchitectureToPipeline" nillable="true" type="tns:ArchitectureToPipeline" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfArchitectureToPipeline" nillable="true" type="tns:ArrayOfArchitectureToPipeline" />
  <xs:complexType name="ArrayOfCodeGenerationPipeline">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CodeGenerationPipeline" nillable="true" type="tns:CodeGenerationPipeline" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCodeGenerationPipeline" nillable="true" type="tns:ArrayOfCodeGenerationPipeline" />
  <xs:complexType name="ArrayOfCodeProjectProvider">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CodeProjectProvider" nillable="true" type="tns:CodeProjectProvider" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCodeProjectProvider" nillable="true" type="tns:ArrayOfCodeProjectProvider" />
  <xs:complexType name="ArrayOfFeatureToArchitecture">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureToArchitecture" nillable="true" type="tns:FeatureToArchitecture" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFeatureToArchitecture" nillable="true" type="tns:ArrayOfFeatureToArchitecture" />
  <xs:complexType name="ArrayOfPipelineStep">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineStep" nillable="true" type="tns:PipelineStep" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineStep" nillable="true" type="tns:ArrayOfPipelineStep" />
  <xs:complexType name="ArrayOfPipelineStepFileCreationTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineStepFileCreationTemplate" nillable="true" type="tns:PipelineStepFileCreationTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineStepFileCreationTemplate" nillable="true" type="tns:ArrayOfPipelineStepFileCreationTemplate" />
  <xs:complexType name="ArrayOfPipelineStepFileTemplate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineStepFileTemplate" nillable="true" type="tns:PipelineStepFileTemplate" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineStepFileTemplate" nillable="true" type="tns:ArrayOfPipelineStepFileTemplate" />
  <xs:complexType name="ArrayOfPipelineStepPrerequisite">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineStepPrerequisite" nillable="true" type="tns:PipelineStepPrerequisite" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineStepPrerequisite" nillable="true" type="tns:ArrayOfPipelineStepPrerequisite" />
  <xs:complexType name="ArrayOfPipelineSupportedLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineSupportedLanguage" nillable="true" type="tns:PipelineSupportedLanguage" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineSupportedLanguage" nillable="true" type="tns:ArrayOfPipelineSupportedLanguage" />
  <xs:complexType name="ArrayOfPipelineSupportedProvider">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PipelineSupportedProvider" nillable="true" type="tns:PipelineSupportedProvider" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfPipelineSupportedProvider" nillable="true" type="tns:ArrayOfPipelineSupportedProvider" />
  <xs:complexType name="ArrayOfProgrammingLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ProgrammingLanguage" nillable="true" type="tns:ProgrammingLanguage" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProgrammingLanguage" nillable="true" type="tns:ArrayOfProgrammingLanguage" />
  <xs:complexType name="ArrayOfProjectStructure">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ProjectStructure" nillable="true" type="tns:ProjectStructure" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProjectStructure" nillable="true" type="tns:ArrayOfProjectStructure" />
  <xs:complexType name="ArrayOfProviderSupportedLanguage">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ProviderSupportedLanguage" nillable="true" type="tns:ProviderSupportedLanguage" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProviderSupportedLanguage" nillable="true" type="tns:ArrayOfProviderSupportedLanguage" />
</xs:schema>